Field
The described embodiments relate to electronic devices with network connections. More specifically, the described embodiments relate to electronic devices that transfer data using the Bluetooth Low Energy standard.
Related Art
Many modern electronic devices include a networking subsystem that is used to communicate with other electronic devices. For example, these electronic devices can include networking subsystem with a cellular network interface (UMTS, LTE, etc.), a Bluetooth interface, and/or a wireless network interface (e.g., a wireless network such as described in the Institute of Electrical and Electronics Engineers (IEEE) standards 802.11).
These electronic devices sometimes wirelessly communicate with electronic devices that have very restrictive power-consumption requirements. For example, low-power electronic devices such athletic heart rate monitors and other such devices can require that power consumption by the device be kept at very low levels to preserve battery life in the device. Because many of the currently-available standards for wirelessly communicating between devices consume too much power, the standards often cannot be used when communicating with these low-power devices. For example, one commonly-used standard used to wirelessly communicate between electronic devices is the Bluetooth Classic standard (“BTC”), which is described in the Core v. 4.0 Specification for the Bluetooth System from the Bluetooth Special Interest Group (SIG) of Kirkland, Wash.). However, BTC consumes too much power to be used for communicating with many devices with restrictive power-consumption requirements. The Bluetooth Specification also describes the Bluetooth Low Energy standard (“BTLE”) that enables data transfer using significantly less power than BTC. The BTLE standard can be used to communicate with some of these lower-power devices without consuming too much power.
In describing BTLE, the Bluetooth Specification describes an event-based communication scheme for managing communications between devices. When using BTLE, the devices first agree, while establishing a BTLE network connection, on a schedule of events that occur at corresponding times. Then, while subsequently using the BTLE network connection, during each event, the devices are configured to send data to and receive data from the other device (if data is available to be sent/received). FIG. 1 presents a timeline diagram illustrating an example of the BTLE event-based communication scheme. More specifically, FIG. 1 presents two timelines, one for a first device, and the other for a second device. As can be seen in FIG. 1, the first device has a sending window that occurs first during a given event (e.g., E0 or E1), and the second device has a receiving window that occurs when the first device is in its sending window. In addition, the second device has a sending window that occurs during the event, and the first device has a corresponding receiving window. To ensure that the communications from one device can be received by the other device, the devices are configured to communicate at a given frequency during a corresponding event.
In BTLE systems, when a device successfully receives data, the device sends an acknowledge message to the other device to acknowledge the successful receipt of the data. For example, using the timelines in FIG. 1, during event E0, the first device could send data in its sending window, and the second device could receive the data. The second device then sends an acknowledge message in its own sending window. If the first device does not receive an acknowledge message (because, e.g., the data arrived at the second device corrupted in some way), the first device awaits its next sending window during the next event and resends the data at the same frequency. The first device continues to resend the data at each event, at the same frequency, until receiving an acknowledge message from the second device.
Because the devices can be subject to interference (e.g., between a device and other devices in the environment in which the device is located), data sent by a first device to a second device can arrive in a corrupted state. However, resending the data at the same frequency at the next event can again be unsuccessful because the devices may be subject to the same source of interference. This may result in a device repeatedly attempting to resend data and continuing to encounter the same interference. Because some data is “timely,” and hence generally should arrive at a given time and in a given sequence with respect to prior and subsequent data, the repeated resending of data can result in suboptimal performance for the devices, which can lead to an undesirable user experience.